---
title: Configuration.handleStreamStart()
api: Configuration.handleStreamStart
---

## Description

<Summary/>

<FilterDiagram
  name="handleStreamStart"
  input="Event"
  output="Event"
/>

The user function that gets called will have an event object as parameter, which is whatever first event is in that stream. It can be any of the four types of events described in [Concept: Events](/intro/concepts/#events).

This filter passes every input event down to its output. It doesn't change how many or what events there are. However, since events are all just objects being passed around by reference, if you alter the event object itself, the change will be visible on the output, even though the references to the events are identical between the input and the output.

## Syntax

``` js
pipy()
  .pipeline()
  .handleStreamStart(
    event => onStreamStart(event)
  )
```

## Parameters

<Parameters/>

## See Also

* [Configuration](/reference/api/Configuration)
* [handleData()](/reference/api/Configuration/handleData)
* [handleStreamEnd()](/reference/api/Configuration/handleStreamEnd)
* [handleMessageStart()](/reference/api/Configuration/handleMessageStart)
* [handleMessageBody()](/reference/api/Configuration/handleMessageBody)
* [handleMessageEnd()](/reference/api/Configuration/handleMessageEnd)
* [handleMessage()](/reference/api/Configuration/handleMessage)
